package juego.tests;

import juego.modelo.Punto;
import juego.modelo.PuntoComun;
import juego.modelo.Tablero;
import junit.framework.TestCase;

public class PuntoComunTest extends TestCase {
	
	Tablero tablero = Tablero.getInstance();
	
	public void testPuntoComun() {
		try {
			int nivel = 1;
			Punto pos = new Punto(1, 1);
			PuntoComun punto = new PuntoComun(nivel, pos);
			assert (punto != null);
		} catch (IllegalArgumentException e) {
			fail();
		}
	}
	public void testPuntoComunError() {
		try {
			int nivel = 1;
			Punto pos = null;
			PuntoComun punto = new PuntoComun(nivel, pos);
			fail();
		} catch (IllegalArgumentException e) {
			assertTrue (true);
		}
	}
	
	public void testComerError() {
		try {
			int nivel = 1;
			Punto pos = new Punto(1, 1);
			PuntoComun punto = new PuntoComun(nivel, pos);
			punto.comer();
			fail();
		} catch (NullPointerException e) {
			assertTrue(true);
		}
	}

	public void testComer() {
			int nivel = 1;
			Punto pos = new Punto(1,5);
			PuntoComun punto = new PuntoComun(nivel, pos);
			tablero.crearJuego(nivel);
			try{
			int puntaje = tablero.getPuntaje();
			punto.comer();
			assertEquals(puntaje+1,tablero.getPuntaje());
		} catch (NullPointerException e) {
			fail();
		}
	}
	public void testGetX() {
		PuntoComun punto = new PuntoComun(1, new Punto(10, 20));
		int x = punto.getX() / tablero.getDistanciaEntreComida();
		assertEquals(x, 10);
	}

	public void testGetY() {
		PuntoComun punto = new PuntoComun(1, new Punto(10, 20));
		int y = punto.getY() / tablero.getDistanciaEntreComida();
		assertEquals(y, 20);
	}
}